#include "gui/objects/locations/GUIMapLocation.h"
#include <stdio.h>
namespace gui {

GUIMapLocation::GUIMapLocation(MapLocation* mapLocation) {
	MapPoint mp = mapLocation->getPosition();
	printf("mp: %f, %f", mp.getX(), mp.getY());
	int metersToIncrese = 12; // cte

	// calculo si la altura es par o impar
	bool even = !(mapLocation->getHeight() % 2);

	// Si el objeto esta de lado par, le sumo al angulo del camino, pi/2, sino se lo resto
	// De esta forma obtengo el angulo de la recta perpendicular al camino, sobre la que se ubicara el objeto.
	double rotation = even? mapLocation->getAngle() + PI : mapLocation->getAngle();

	// calculo el corrimiento en x e y. adyacente = cos() * hipotenusa; opuesto = sen() * hipotenusa
	double offsetX = cos(rotation) * metersToIncrese;
	double offsetY = sin(rotation) * metersToIncrese;
	// por ultimo, corro las coordenadas XY del objeto segun corresponda
	double xPos = mp.getX() + offsetX;
	double yPos = mp.getY() + offsetY;

	this->setCenterInMeters(xPos, yPos);
	this->setRotation(rotation + PI / 2);
	// 0 toma el ancho de la imagen.
	this->setSizeInMeters(0, 0);
}

GUIMapLocation::~GUIMapLocation() {

}

}
